package team.freeroom.hotelmanage.repository.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import team.freeroom.hotelmanage.repository.entity.Role;
import java.util.List;
import java.util.Map;

/**
 * 角色类 Mapper
 *
 * @author aBadString
 */
@Mapper
@Repository
public interface RoleMapper {
    /**
     * 添加一个新角色
     * @param role 新角色对象
     * @return
     */
    int add(Role role);

    /**
     * 修改角色信息
     * @param role 修改后的角色对象
     * @return
     */
    int edit(Role role);

    /**
     * 删除角色信息
     * @param id 要删除的 ID
     * @return
     */
    int delete(Long id);

    /**
     * 角色信息模糊分页搜索查询
     * @param queryMap
     *          name 角色名称 (模糊查询)
     *          offset 偏移量
     *          pageSize 页大小
     * @return 数量小于等于 pageSize 的 Role 集合
     */
    List<Role> findList(Map<String, Object> queryMap);

    /**
     * 角色信息模糊分页搜索查询总记录数
     * @param queryMap
     *          name 角色名称 (模糊查询)
     * @return 符合条件的角色数量
     */
    int getTotal(Map<String, Object> queryMap);

    /**
     * 根据id获取角色
     * @param id 角色 ID
     * @return 如果存在, 则返回一个角色对象
     */
    Role find(Long id);
}
